/*
 * Created by SharpDevelop.
 * user: Robertux
 * Date: 18/03/2008
 * Time: 21:31
 * 
 * 
 */

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Collections.Generic;
using DataLayer;
using Inventador;

namespace WinApp
{
	/// <summary>
	/// Description of frmAddEditTipoProducto.
	/// </summary>
	public partial class frmAddEditTipoProducto : Form
	{
		private BaseDatos bdatos;
		private TipoProducto tipo;
		private List<UnidadMedida> unidades;
		
		public frmAddEditTipoProducto()
		{
			InitializeComponent();
		}
		
		public frmAddEditTipoProducto(BaseDatos bdatosExterna, TipoProducto pTipo): this()
		{
			this.bdatos = bdatosExterna;
			this.tipo = pTipo;
			this.RellenarUnidades();
			if(this.tipo == null)
				this.Text = "Agregar Nuevo Tipo";
			else
			{
				this.Text = "Editar Tipo";
				this.textBox1.Text = this.tipo.Nombre;
				for(int i = 0; i<this.comboBox1.Items.Count; i++)
				{
					if(this.comboBox1.Items[i].ToString() == this.tipo.fkUnidadMedida.Nombre)
					{
						this.comboBox1.SelectedIndex = i;
						break;
					}
				}
			}
		}
		
		public void RellenarUnidades()
		{
			this.comboBox1.Items.Clear();
			this.unidades = UnidadMedida.GetList(this.bdatos, "id != 0");
			foreach(UnidadMedida unidad in unidades)
				this.comboBox1.Items.Add(unidad.Nombre);
			this.comboBox1.SelectedIndex = 0;
		}
		
		void Button1Click(object sender, EventArgs e)
		{
			this.Close();
		}
		
		void Button2Click(object sender, EventArgs e)
		{
			if(this.textBox1.Text == "")
				MessageBox.Show("Debe escribir un nombre","Error");
			else
			{
				if(this.tipo == null)
				{
					int maxId = TipoProducto.GetMaxId(this.bdatos);
					this.tipo = new TipoProducto(maxId + 1, this.textBox1.Text, this.unidades[this.comboBox1.SelectedIndex]);
					this.tipo.Insert(this.bdatos);					
				}
				else
				{
					this.tipo.Nombre = this.textBox1.Text;
					this.tipo.fkUnidadMedida = this.unidades[this.comboBox1.SelectedIndex];
					this.tipo.Update(this.bdatos);
				}
				this.Close();
			}
		}
	}
}
